DOORS DXL

hi,

i need DOORS DXL concepts how it works and how it will automate the attributes values.
jaguar - Mon Feb 08 02:43:31 EST 2010

Re: DOORS DXL
doors36677 - Tue Feb 09 15:31:51 EST 2010

An old dxl manual published by QSS says:

DXL lets you build almost any tools you want to make DOORS
easier to use. Just as most word-processors, spreadsheets and
databases now include a macro language to let you customise
them for your patterns of use, so DOORS provides this extension
language to help you access your information models in exactly
the way you like.

DXL offers you the full power of a high-level programming
language (such as C++ or Visual Basic), with the special
advantage that DOORS structures like objects, links, and attributes
are first-class citizens. This means that in just a few lines you can
write useful and convenient programs. Typical operations on
requirements are easy to express because concepts like "current
Object " are built into the system.

We have tried to make DXL as easy to use as possible. You can
type programs straight into the DXL input panel on screen, or
prepare .DXL files (in plain ASCII) using your favourite editor or
word processor. The language contains no unnecessary frills, so
programs can be short and simple.

Re: DOORS DXL
llandale - Tue Feb 09 18:24:35 EST 2010

You seem to be asking specifically about Attribute DXL.

AttrDXL has the pre-defined variable 'obj' which means 'this object'. After calculating your desired result, you set the attr value as follows: obj.attrDXLName = result.

Its preduent to set null results to a space instead, since 'null' means 'keep recalculating' which will bog down your client significantly.

Here's an example:

bool HasHeading = (!

null obj.
"Object Heading" 
"") bool HasText    = (!

null obj.
"Object Text" 
"")   string Result 

if     ( HasHeading and  HasText) Result = identifier(obj) 
" Has Heading and Text" elseif ( HasHeading and !HasText) Result = identifier(obj) 
" Has Heading and no Text" elseif (!HasHeading and  HasText) Result = identifier(obj) 
" Has no Heading and has Text" elseif (!HasHeading and !HasText) Result = identifier(obj) 
" Has no Heading nor Text"   

if (

null Result) obj.attrDXLName = 
" "     
// Not possible with this DXL, but is possible for others 

else obj.attrDXLName = Result

Create attribute HasHeadingText type 'string', then select []DXL attribute, then [Browse...], then [New], past the above into the box, [OK] then [Close]. Insert a new column with that attribute.

Add Text to an object. Notice the attr DXL does NOT automatically update to say it has text. Use the Tools menu >>Refresh DXL Attributes and notice it updates then.

  • Louie